import {reqGoodsInfo,reqAddOrUpdateShopCart} from '@/api'
// 封装游客临时身份的模块uuid --> 生成一个随机的字符串(不能再变化)
import {getUUID} from '@/utils/uuid_token'
const state = {
    // 商品详情
    goodInfo:{},
    // 游客临时身份
    uuid_token:getUUID()
}
const mutations = {
    GETGOODSINFO(state,goodInfo){
        state.goodInfo = goodInfo
    }
}
const actions = {
    // 获取产品信息的actions
    async getGoodsInfo({commit},skuId){
        const res = await reqGoodsInfo(skuId)
        if(res.code == 200){
            commit('GETGOODSINFO',res.data)
        }
    },
    // 将产品添加到购物车
    async addOrUpdateShopCart({commit},{skuId,skuNum}){
        // 因为服务器没有返回结果，所以仓库不用保存数据
        // 加入购物车返回的结果
        const res = await reqAddOrUpdateShopCart(skuId,skuNum)
        // 一个函数有 async 的返回值是 promise
        if(res.code == 200){
            return 'ok'
        }else{
            return Promise.reject(new Error('failed'))
        }
    }
}
// 简化信息
const getters = {
    // 路径导航简化
    categoryView(state){
        return state.goodInfo.categoryView || {}
    },
    // 产品信息
    skuInfo(state){
        return state.goodInfo.skuInfo || {}
    },
    // 售卖属性
    spuSaleAttrList(state){
        return state.goodInfo.spuSaleAttrList || []
    }
}



export default {
    state,
    actions,
    mutations,
    getters
}